package com.rocketmq.test.consumer;

import com.rocketmq.test.msg.TeduUser;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

/**
 * 当前容器bean对象 实现了接口 会被rocketmq配置类扫描加载
 * 每一个RocketMQListner类型的bean都会被底层创建一个消费者进程
 * 将当前bean对象注入。接口中的泛型就是底层消费逻辑的反序列化使用的
 * 所以生产端发送时payLoad是什么类型TeduUser 消费者泛型就是什么类型
 * 底层调用consumeMessage方法 会使用当前bean对象onMessage处理消费
 */
@Component
@RocketMQMessageListener(
        topic="topic-test01",
        consumerGroup = "test-c-group01",
        selectorExpression = "*")
public class MyConsumer01 implements RocketMQListener<TeduUser> {
    @Override
    public void onMessage(TeduUser message) {
        //throw new RuntimeException("消费失败");
        System.out.println("消费者01接收消息:"+message);
    }
}
